home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / parallel / readme < prev    next >
Text File  |  1992-04-11  |  3KB  |  64 lines

  1.               PROLOG-1-LINDA and PROLOG-N-LINDA
  2.  
  3. This directory contains the source for Prolog-1-Linda (the mono-processor
  4. implementation) and Prolog-N-Linda (the multi-processor implementation.
  5.  
  6. To use Prolog-1-Linda, you need :
  7.  
  8. server          - Tuple space server Prolog source code
  9. client          - Client Prolog source code
  10.  
  11. Prolog-1-Linda has not been developed as much as Prolog-N-Linda, but
  12. should still work. It can be run under muProlog with no modifications.
  13. To use Prolog-1-Linda (i) run muProlog and consult server, (ii) evaluate
  14. go(<Goal>,<File>)., where <Goal> is the goal to evaluate on the client
  15. after it consults <File>. Watch out for procedure name clashes between
  16. any of your programs and the server/client source. There is one sample 
  17. program for Prolog-1-Linda, philosophers_1. A simple way to test the
  18. system is to evaluate ?-go(break,dummy)., which will cause the client
  19. to break into a command loop, from which you can interactively 
  20. manipulate the tuple space (dummy is some dummy Prolog source file).
  21.  
  22. To use Prolog-N-Linda, you need :
  23.  
  24. communicator.c  - The communicator source, written in C
  25. descriptor.c    - Change #1 for muProlog
  26. execlp.c        - Change #2 for muProlog
  27. lindasrc        - Server and client Prolog source code
  28. mulinda         - muProlog specific communications Prolog source code
  29.  
  30. The changes to muProlog are easy to make, and are documented in
  31. descriptor.c and execlp.c. Rebuild muProlog appropriately. Compile
  32. the communicator before you do anything else.
  33.  
  34. To run Prolog-N-Linda, (i) Edit lindasrc to make the client_list fact
  35. reflect your machine names and load capacity. The machine names and 
  36. capacity are given as a list such as [bison(2),budgie(1),woylie(3)]. 
  37. This means that bison can run 2 clients, budgie 1 and woylie 3. 
  38. (ii) consult lindasrc & mulinda, (iii) evaluate ?-make_linda. (This will 
  39. appear to do nothing, but actually creates a file linda, which is 
  40. needed.) Abort make_linda after a suitable pause. (iii) rerun muProlog, 
  41. consult lindasrc & mulinda, and evaluate ?-make_mugo(<Server machine name>)., 
  42. where <Machine_availability> is You will then be prompted for the initial 
  43. client information. In future runs you can now simply run muProlog with 
  44. the argument mugo. You will immediately be prompted for initial client 
  45. information. You can further modify lindasrc to make your programs
  46. immediately runable - copy our geneticX examples.
  47.  
  48. There are several sample programs for Prolog-N-Linda :
  49.  
  50. interact        - Interactive Linda. As client do not have a stdin or 
  51.                   stdout, the simple command loop interaction that can
  52.                   be used in Prolog-1-Linda is not possible. This program
  53.                   asks the server to do the io, and requires serverlib to 
  54.                   be loaded for this purpose.
  55. maplist         - Parallel function evaluation 
  56. fibonacci       - Used with maplist as a "hard" function
  57. philosophers    - Dining philosophers
  58. pingpong        - Pingpong for timing uses
  59. serverlib       - Remote reading procedure, to be loaded with server
  60.  
  61. Any bugs, problems, fixes should be mailed to geoff@cs.uwa.edu.au
  62.  
  63. Geoff Sutcliffe.
  64.